package dao;

import java.util.ArrayList;

import model.CountryModel;

/**
 * Interface fuer CountryModel
 * 
 * @author Katharina Matei
 * @version 1.0.0
 */
public interface CountryDAOInterface {

	/**
	 * Fuegt ein CountryModel in die Datenbank ein
	 * 
	 * @param CountryModel
	 * @throws DBException
	 */
	public void insert(CountryModel country) throws DBException;

	/**
	 * Aendert die Namen der Countries, die der uebergebenen country_id
	 * entsprechen
	 * 
	 * @param CountryModel
	 * @throws DBException
	 */
	public void update(CountryModel country) throws DBException;

	/**
	 * Loeschen der Countries aus der Datenbank, die der uebergebenen country_id
	 * entsprechen
	 * 
	 * @param CountryModel
	 * @throws DBException
	 */
	public void delete(CountryModel country) throws DBException;

	/**
	 * Liest einen Country-Datensatz zu einer country_id aus der Datenbank
	 * 
	 * @param String countryID
	 * @return CountryModel
	 * @throws DBException
	 */
	public CountryModel readCountry(String countryID) throws DBException;

	/**
	 * Liest alle Countries aus der Datenbank
	 * 
	 * @return ArrayList<CountryModel>
	 * @throws DBException
	 */
	public ArrayList<CountryModel> getCountries() throws DBException;

	/**
	 * Filtert Countries aus Cities
	 * 
	 * @return ArrayList<CountryModel>
	 * @throws DBException
	 */
	public ArrayList<CountryModel> getCountryModelAll() throws DBException;

	/**
	 * Liest Countries aus der DB zu country_name
	 * 
	 * @return ArrayList<CountryModel>
	 * @throws DBException
	 */
	public ArrayList<CountryModel> getCountryByCountry(CountryModel country)
			throws DBException;
}
